namespace Drill
{
	/// <summary>
	/// Interface implemented by classes that are used to create new instances of 
	/// <see cref="IDependencyResolver"/>.
	/// </summary>
	/// <remarks>
	/// Implementers can implement one of two public constructor signatures:
	/// public MyDependencyResolverFactory() or public MyDependencyResolverFactory(IDependencyResolverInitContext context).
	/// The constructor signature with the constructor context argument is the recommended constructor signature.
	/// </remarks>
	public interface IDependencyResolverFactory
	{
		/// <summary>
		/// Creates a new <see cref="IDependencyResolver"/> instance.
		/// </summary>
		/// <returns>A new <see cref="IDependencyResolver"/> instance.</returns>
		IDependencyResolver CreateDependencyResolver();
	}
}